#pragma once
#include "Vector2D.h"
namespace ZeEngine
{
    class IMouseListener
    {
    private:
        static const s32 cMouseLeft = SDL_BUTTON_LEFT;
        static const s32 cMouseMiddle = SDL_BUTTON_MIDDLE;
        static const s32 cMouseRight = SDL_BUTTON_RIGHT;

    public:
        virtual bool OnMouseMoved(const Vector2D<s32>& absolute, const Vector2D<s32>& relative) { return false; }
        virtual bool OnMouseButtonPressed(const Vector2D<s32>& absolute, s32 button) { return false; }
        virtual bool OnMouseButtonReleased(const Vector2D<s32>& absolute, s32 button) { return false; }

        bool IsLeftButton(s32 button) { return button == cMouseLeft; }
        bool IsRightButton(s32 button) { return button == cMouseRight; }
        bool IsMiddleButton(s32 button) { return button == cMouseMiddle; }

    };
}